const mongoose = require('mongoose')

mongoose.connect('mongodb://127.0.0.1:27017/test_db')

mongoose.connection.on('open', () => {
  console.log('连接数据库成功');

  const bookSchema = mongoose.Schema({
    name: String,
    author: String,
    price: Number
  })

  const BookModel = mongoose.model('books', bookSchema)

  // 数据库常用方法
  // 1.1 添加文档 / 添加一个
  //   BookModel.create({
  //     name: '活着',
  //     author: '余华',
  //     price: 34
  //   }, (error, data) => {
  //     if (error) {
  //       // 如果失败了, 输出错误信息
  //       console.log('----', error.message);
  //     } else {
  //       // 如果成功, 输出返回数据 (产生的文档)
  //       console.log(data);
  //     }
  //     //  关闭连接 (选做)
  //     mongoose.connection.close()
  //   })
  // })

  // 1.2 批量添加/添加多个
  // BookModel.insertMany([
  //   {
  //     name: '红楼梦',
  //     author: '曹雪芹',
  //     price: 26.8
  //   },
  //   {
  //     name: '三国演义',
  //     author: '罗贯中',
  //     price: 35.6
  //   },
  //   {
  //     name: '水浒传',
  //     author: '施耐庵',
  //     price: 38.8
  //   },
  // ], (error, data) => {
  //   if (error) { // 如果失败了, 输出错误信息
  //     console.log('----', error.message)
  //   } else { // 如果成功, 输出返回数据 (产生的文档)
  //     console.log(data)
  //   }
  //   //  关闭连接 (选做)
  //   mongoose.connection.close()
  // })

  
  // 2 更新文档
  // 2.1 更新一个
  // BookModel.updateOne({name: '三国演义'},{price: 100}, (error, data) => {
  // 2.2 更新多个
  BookModel.updateMany({ name: '三国演义' }, { price: 200 }, (error, data) => {
    if (error) { // 如果失败了, 输出错误信息
      console.log('----', error.message)
    } else { // 如果成功, 输出返回数据 (产生的文档)
      console.log(data)
    }
    // 关闭连接 (选做)
    mongoose.connection.close()
  })



})



// 绑定连接失败的监听
mongoose.connection.on('error', () => {
  console.log('连接数据库失败!')
})


